home *** CD-ROM | disk | FTP | other *** search
- 10 rem copyright 1987 compute! publications, inc. - all rights reserved
- 20 ifpeek(65530)=5then(NULL)15
- 30 poke56,59:poke55,0:clr:ch=15360:dim b(8,8):open4,4,0:gosub740
- 40 bh=5:bw=3:rem banner pixel height (1-10) and width (1-)
- 50 pw=1:rem single-page pixel width (1-2)
- 60 print"[147] copyright 1987 compute! pub., inc."
- 70 printtab(11)"all rights reserved"
- 80 printtab(11)"poster printer"
- 90 printtab(11)"1. banner"
- 100 printtab(11)"2. single page"
- 110 printtab(11)"3. form feed"
- 120 printtab(11)"4. exit program"
- 130 geta$:ifa$<"1"ora$>"4"then130
- 140 onasc(a$)-48goto170,410,150,160
- 150 print#4,chr$(12):goto60:rem form feed
- 160 print#4:close4:print"[147]":end
- 170 print"[147]please enter the message to";
- 180 a$="":print" be printed":inputa$:ifa$=""then60
- 190 lp=len(a$)
- 200 forc=1tolp:gosub210:next:goto60
- 210 x$=mid$(a$,c,1):sc=asc(x$)
- 220 gosub330:cs=ch+sc*8
- 230 fori=0to7:a(i)=peek(cs+i):next
- 240 forbi=7to0step-1
- 250 l1$=left$(" ",(80-8*bh)/2)
- 260 forby=7to0step-1:ifa(by)and2^bithen290
- 270 l1$=l1$+left$(" ",bh)
- 280 goto300
- 290 l1$=l1$+left$("**********",bh)
- 300 nextby
- 310 fora=1tobw:print#4,l1$:next
- 320 nextbi:return
- 330 ifsc<32thensc=128:return
- 340 ifsc<64thenreturn
- 350 ifsc<96thensc=sc-64:return
- 360 ifsc<128thensc=sc-32:return
- 370 ifsc<160thensc=128:return
- 380 ifsc<192thensc=sc-64:return
- 390 ifsc<255thensc=sc-128:return
- 400 sc=94:return
- 410 nc=8:ifpw=2thennc=4
- 420 print"[147]enter up to 5 lines with"nc"letters or"
- 430 print"less per line (carriage return to quit)"
- 440 fora=1to5:l1$="":print"enter line";a:inputl1$
- 450 ifa=1andl1$=""thena=5:next:goto60
- 460 ifl1$=""thena=5:next:goto480
- 470 l=a:l$(a)=left$(l1$,nc):next
- 480 w=12*l:w1=int((60-w)/2)+5
- 490 forw=1tow1:print#4:next
- 500 forx=1tol:gosub510:next:goto60
- 510 ll=len(l$(x)):forx1=1toll
- 520 w$=mid$(l$(x),x1,1):sc=asc(w$)
- 530 gosub330
- 540 cs=ch+sc*8
- 550 forx2=0to7:b(x1,x2)=peek(cs+x2)
- 560 nextx2,x1
- 570 lc=int((80-(ll*pw*8+ll*2))/2):rem ll*2 for # spaces between adjoining chars
- 580 pl$=""
- 590 iflc=0then610
- 600 forx1=1tolc:pl$=pl$+" ":next
- 610 sl$=pl$
- 620 forx2=0to7:forx1=1toll
- 630 forbi=7to0step-1
- 640 ifb(x1,x2)and2^bithen660
- 650 pl$=pl$+left$(" ",pw):goto670:rem pixel width in this line and next
- 660 pl$=pl$+left$("**",pw)
- 670 nextbi
- 680 pl$=pl$+" ":rem # spaces between adjoining characters
- 690 nextx1
- 700 print#4,pl$
- 710 pl$=sl$
- 720 nextx2
- 730 fora=1to4:print#4:next:return:rem spaces between text lines
- 740 i=15104:rem locate uppercase in ram
- 750 reada:ifa=-1thensys15104:return
- 760 pokei,a:i=i+1:goto750
- 770 rem 64 character move routine
- 780 data 169,208,133,252,169,60,133,254,169,0
- 790 data 133,251,133,253,120,165,1,41,251,133
- 800 data 1,162,4,160,0,177,251,145,253,200
- 810 data 208,249,230,252,230,254,202,208,242,165
- 820 data 1,9,4,133,1,88,96,-1
-